// pages/chat/chatindex.js
import {
  getPosts
} from "../../api/user"
const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    isconnect: false,
    list: [],
    value: "",
    userName: ""
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options.id);
    app.globalData.userInfoPromise.then(res => {
      const userInfo = app.globalData.username;
      console.log(app.globalData.username); //打印出来是用户登录的信息
      console.log(userInfo);
      this.userName = userInfo.loginName; //

      this.setData({
        userName: this.userName
      })

      this.groupId = "web09" + options.id; //当前
      this.nickName = userInfo.userName;
      this.avatar = userInfo.avatar;
      // 建立连接
      wx.connectSocket({
        url: `wss://showme.myhope365.com/websocketChat?userName=${this.userName}&password=211&courseId=${this.groupId}&
      nickName=${this.nickName}&avatar=${this.avatar}`,
      })
      wx.onSocketOpen((result) => {
        console.log("消息");
        console.log(result);
        // 链接建立成功后执行
        this.setData({
          isconnect: true
        })
        //获取历史消息
        const historymsg = {
          cmd: 19, //命令
          type: 1, // 类型，固定值
          groupId: this.groupId, //分组的id
          userId: this.userName, // 用户的id（可以用loginName）
        }
        wx.sendSocketMessage({
          data: JSON.stringify(historymsg),
        })
        this.timer = setInterval(() => {
          wx.sendSocketMessage({
            data: JSON.stringify({
              "cmd": 13, // 固定参数
              "hbbyte": "-127" // 固定参数
            }),
          })
        }, 5000)

      })

      // 接收消息
      wx.onSocketMessage((result) => {
        console.log("有消息进入啦");
        console.log(result);
        const data = JSON.parse(result.data)
        console.log(data);
        if (data.command == 11) {
          this.data.list.push(data.data)
          this.setData({
            list: this.data.list
          })
        }
        if (data.command == 20 && data.code == 10018) {
          // 历史消息
          this.setData({
            list: data.data.groups[this.groupId]
          })

        }
      })

    })
  },
  onUnload() {
    wx.closeSocket({
      code: 0,
    })
    clearInterval(this.timer)
  },
  // 发消息
  sendmsg() {
    if (!this.data.isconnect) {
      wx.showToast({
        title: '稍等',
        icon: "null",
      })
      this.data.value = null
      return;
    }
    // 发送消息
    this.chatimage(this.data.value, "1")

  },
  chatimage(content, type) {
    const msg = {
      from: this.userName, // 发送人，当前用户的用户名
      createTime: new Date().getTime(), // 发送时间
      cmd: 11, // 命令固定内容
      group_id: this.groupId, // 分组id。  想要发送到哪个组里
      chatType: 1, //  聊天类型 固定内容
      msgType: 0, // 消息类型 固定内容
      content, // 消息内容，自己设计结构，比如你想发送图片（图片上传的接口）
      nickName: this.nickName, // 用户昵称
      avatar: this.avatar, // 用户头像
      type // 消息类型。 你可以自己设计，发送过去是什么，返回的就是什么（1: 普通文本 2: 图片 3：点赞 4， 送花）

    }
    // 发送的只能是字符串
    wx.sendSocketMessage({
      data: JSON.stringify(msg),
    })
  },
  // 发送图片
  photo() {
    console.log("ddd");
    wx.chooseImage({
      count: 1,
      success: res => {
        const tempFilePaths = res.tempFilePaths
        wx.uploadFile({
          // 通过选择图片的api拿到的地址
          filePath: res.tempFilePaths[0],
          url: 'https://showme.myhope365.com/api/nos/upload/image', //仅为示例，非真实的接口地址

          name: 'file',
          // formData: {
          //   'fileUseForEnum': 'BBS/DEFAULT/RICH_TEXT/AVATAR/CMS/SHOP/BBS'
          // },
          header: {
            "cookie": wx.getStorageSync('jsonid'),
          },
          success: upload => {
            // console.log(upload);
            const data = JSON.parse(upload.data)
            console.log(data.url);
            this.chatimage(data.url, "2")
          }
        })
      }
    })
  },



  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})